23

» WarCraft 3 / Эффект строительства зданий

Похожие вопросы:

ответ
"скорости анимации" не нашел
типо такого?
ответ
AlexSan, делаем бд и по событию пишем данные в бд
подробнее в статьях
если хочешь красиво то делай свой вар с картами и эльфийками
ответ
что бы она сразу перешла в режим наведения.. а то выглядит как баг, из-за которого надо нажимать по 2 раза...
Gui -> Force player to use X key
Согласовываешь с хоткеем строительства
======================================
Бафф имеется в виду Бафф или Спецэффект?
Если спецэффект:
DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",u,"origin"))
Если баф, то возможно будет работать так:
call UnitAddAbility(u, 'buff')

23

» WarCraft 3 / Переменная строка

Похожие вопросы:

ответ
common.j
-- String Utility API

---@param i integer
---@return real
function I2R(i) end

---@param r real
---@return integer
function R2I(r) end

---@param i integer
---@return string
function I2S(i) end

---@param r real
---@return string
function R2S(r) end

---@param r real
---@param width integer
---@param precision integer
---@return string
function R2SW(r, width, precision) end

---@param s string
---@return integer
function S2I(s) end

---@param s string
---@return real
function S2R(s) end

---@param h handle
---@return integer
function GetHandleId(h) end

---@param source string
---@param start integer
---@param ending integer
---@return string
function SubString(source, start, ending) end

---@param s string
---@return integer
function StringLength(s) end

---@param source string
---@param upper boolean
---@return string
function StringCase(source, upper) end

---@param s string
---@return integer
function StringHash(s) end


---@param source string
---@return string
function GetLocalizedString(source) end

---@param source string
---@return integer
function GetLocalizedHotkey(source) end
ответ
ProximityCat, pld файл - это файл, что ты прелоадишь. В нём должен быть вызов только функции ExecuteFunc, которая вызывает другую функцию из карты.
ответ
Eternal soul,
Способ что предложил я - вы формируете БД и далее циклом пробегаетесь по массиву unit_type_string[i] и сравниваете его с вашей строкой. Если сравнение прошло успешно то по индексу unit_type[i] находите нужного юнита. Конечно конвертировать было бы более проффесионально, но это способ тоже будет работать.
ответ
TriggerRegisterVariableEvent
Абсолютно бесполезная шутка, и в луа может не работать. Меняете значение переменной, вызывайте сразу нужные действия.

23

» WarCraft 3 / Проблемы с синхронизацией кэша

Похожие вопросы:

ответ
JackFastGame, просто без синхры ставишь всем героям нужное кол-во опыта, т.к у тебя одна машина и нет живых игроков, ты 1 зритель, остальные все боты и действия синхронизации не требуются для реплея, просто выставление напрямую всем игрокам експы.

23

» WarCraft 3 / Как правильно написать GetUnitState ?

Похожие вопросы:

ответ
У тебя событие в триггере неверное. Ты указал, что юнит атакован, а необходимо событие, что юнит получает урон.
ответ
function PolarProjectionX takes real x, real dist, real angle returns real
    return x + dist * Cos(angle * bj_DEGTORAD)
endfunction

function PolarProjectionY takes real y, real dist, real angle returns real
    return y + dist * Sin(angle * bj_DEGTORAD)
endfunction

function Trig_Hit_Actions takes nothing returns nothing
    local unit caster = GetTriggerUnit()
    local real face = GetUnitFacing(caster)
    local real x = PolarProjectionX(GetUnitX(caster), 100., face)
    local real y = PolarProjectionY(GetUnitY(caster), 100., face)
    local group targets = CreateGroup()
    local unit target
    call GroupEnumUnitsInRange(targets, x, y, 100., null)
    set target = FindClosestToXY(targets, x, y)
    if target != null then
        call UnitDamageTargetBJ(caster, target, 100., ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL)
        set target = null
    endif
    set caster = null
    call DestroyGroup(targets)
    set targets = null
endfunction
DopaMine, у тебя нет вызова FindClosestUnitXY.
ответ
VinerX, посмотри гуи функцию "пропустить остальные действия" по факту это слово "return" в коде, то есть после ретурна ты никак не поставишь set newUnit = null, и правильно это делать после set bj_lastReplacedUnit = newUnit, а возвращать не newUnit, а bj_lastReplacedUnit, вот код если непонятно
set bj_lastReplacedUnit = newUnit
set newUnit = null
set oldUnit = null
set indexItem = null
return bj_lastReplacedUnit

23

» WarCraft 3 / Не открывается кампания и карта

Похожие вопросы:

ответ
~8gabriel8:
Не знаю почему, но после нескольких попыток открыть карту в mpq-редакторе, файлы текстур появились, я их заменил и карта открылась.
ответ
Скорее всего какая то ошибка в Jass коде.
ответ
Нельзя. Потому что даже в твоей сугубо триггерной карте, когда запускается команда на исполнение все конвертируется в jass/( Когда ты играешь или проверяешь карту)
Триггер . лишь графическая оболочка, как бы кубики на которых написаны буквы, но все-равно все происходит на jasse ( уже иногда на lua)
Короче нельзя. скачивай jngp и учи хотя бы простые джассовые команды.
Хотя даже зная его взломанная карта часто выкладывает огромный набор проограмного кода без разделения где конкретный текстовый триггер инициализации или определенного дейсвтия.
ответ
У меня была такая проблема хрен знает сколько лет назад. Но она была один раз, возможно тоже из-за сбоя

23

» WarCraft 3 / Свой набор звуков

Похожие вопросы:

ответ
Да чего угодно, хоть дефолтным проигрывателем виндовс.
А так есть adobe audacity и аналоги, для записи и редактирования звуков, а так же сохранении их в нужный формат, игра использует для фраз юнитов звуки формата *.wav, хотя и от *.mp3 файлов не откажиться.
ответ
Закрыто.
ответ
Мб озвучки просто отменили
Учитывая, что под контроль игрока эти юниты никогда не давались, разумно решили - не самое важное
ответ
Да тут недавно статейка была, поищи на сайте.
ответ
Ошибаетесь, дело и в звуках, и в WC3. Просто WC3 проигрывает звуки не выше определённой частоты, это обнаружил aws, когда импортировал звуки в WC3.

23

» WarCraft 3 / Иконка Тралла

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Число вставленных изображений: 0, а требуется не менее 1
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
Count of inserted images is: 0, but required not less than 1
// CID3
23

» WarCraft 3 / Решения проблемы с Картой

Похожие вопросы:

ответ
JGNP используй
ответ
Viktor2, а ты реально импортировал все текстуры (в кол-ве 21шт ) в карту? Если хотя бы одну забыл -модель не будет отображаться.
ответ
На сайте Hive на карте написано текущая версия.
Скорее всего карта для последних патчей, где есть новые нативки.
ответ
~8gabriel8:
Скорее всего вылет в главное меню обусловлен не исполняемостью кода. Часто это может быть по причине того, что в пути к карте есть кириллица, например, когда карта на Рабочем столе или в папке Загрузки. В связи с этим уже давно почти все карты держу в корне диска C:\.
ответ
XGM Bot:
Похожие вопросы:

ответ
путь к текстуре прописывать правильно надо
текстура должна хранится в new.mix без подпапок
ответ
либо юзай мдлвиз как все белые люди
ответ
У модели не выбрано текстурка которая отвечает за ...я забыл как это называется. Аля погребального огня или что-то того. Оказалось трём материалам не дали текстур, я поправил. Сначала проверь работает ли в игре, а потом смело меняй с заменой у себя в папке.
ответ
прочитать правила импорта текстур, которые пишут рядом с моделью
чаще всего нужно удалить все строки в импорте, чтобы осталось TextureName.blp
ответ
Держи. Там были использованы несколько лишних текстур (я так понимаю из вова).
Один вопрос, тупа интересна - что ты делал? "Чего только не делал, однако всё об стенку горох."


23

» WarCraft 3 / Функция не возвращает unit

Похожие вопросы:

ответ
Написать return false
ответ
bj убери для начала
[code]
function ret takes unit m,unit u returns nothing
local location lm=GetUnitLoc(m)
local location lu=GetUnitLoc(u)
local real dx=GetLocationX(lm) - GetLocationX(lu)
local real dy=GetLocationY(lm) - GetLocationY(lu)
local real r=SquareRoot(dx*dx+dy*dy)
if r>=1000 then
call IssuePointOrderLoc( u, "move", lm )
endif
call RemoveLocation(lm)
call RemoveLocation(lu)
endfunction
[/code]
m-мама
u-юнит
ответ
На хайве получил ответ, надо было писать evaluate
ответ
Независимо от того SaveReal там или SaveUnitHandle, ты записываешь значения в одну и ту же таблицу.
Ты просто SaveReal(h, id, 0, x_c) перезаписываешь этим - SaveUnitHandle(h, id, 0, u_c) и этим - SaveEffectHandle(h, id, 0, e)
ответ
зачем внешние очишаеш структуру?
Порой это нужно.

Замени GetTriggerUnit() на GetSpellAbilityUnit().
ApaxHoqpuJL:
call SetUnitAnimationReverseFollowed(u, 3, 1, 1, true, FollowUpFunc.AnimationTimerFollowup, animData)
А это что такое? Что за FollowUpFunc.AnimationTimerFollowup?

23

» WarCraft 3 / Не меняется рельеф

Похожие вопросы:

ответ
Меньше чем -128 ты ландшафт НИКАК ВООБЩЕ НЕ опустишь (хотя, можешь перепилить движок варика).
ответ
сразу видно, человек с большим опытом редактора
ответ
текстуры склона заменяются путями ReplaceableTextures\Cliff\Cliff0.blp и ReplaceableTextures\Cliff\Cliff1.blp
ответ
~8gabriel8:
А в игре тоже поменялось или только в редакторе?
ответ
+- GetLocationZ(Ltargetpoint)

23

» WarCraft 3 / Урон и заклинания при помощи триггеров

Похожие вопросы:

ответ
юнит получает урон
1 ответ на 2 вопроса
ответ
События в помощь. Почитайте про событийно-ориентированные языки программирования. Jass является таким
ответ
Sicre, только на 1 вопрос будем отвечать в этой теме, у тебя за убийство все пачки или за каждого юнита отдельный дроп?
Если за каждого, то по событию юнит определённого типа умирает, создвай предмет в точке смерти, можно также прописать шанс.
Если же ты работаешь с группой и даёшь общую награду за смерть группы, тогда надо группу создать, обозвать её например (пауки у фантана), добавить туда юнитов, и отслеживать смерть всей группы, ну и так будет каждый раз собственно

23

» WarCraft 3 / Ошибка при сохранение карты

Похожие вопросы:

ответ
приходиться угадывать
так не поймешь, чего у тебя там не работает. Опиши ПОДРОБНО чего сделать не так, что она не работает. раньше работала?
Скидывай скрин ошибки, карту. В папке варкрафт есть папка "Errors" там текстовик нужно найти.
предположение
Пробовал выключить или временно удалить все триггеры? если без триггеров нормально работает - вывод?
похоже автор какую-нибудь карту открыл, отредактировал ландшафт. Она там мб, к примеру, на cjass написано. попробуй xgm.guru/p/wc3/178775 Если ошибка будет на jngp, там есть в папке jngp есть папка "logs" тоже ошибки хранит
Еще может быть нужно включить UMS. Даже, если без триггеров не сохраняет, возможно какие-нибудь за какие-нибудь ограничения (кол-во деревьев, размер карты и прочее).
ответ
Объект current не является объектом структуры.
ответ
Попробуй мою версию, там ScExp должен работать. Но это для вц3 1.24 и ниже

По scexp можешь прочекать разницу в wehack.lua с твоим jngp

xgm.guru/p/wc3/jassnewgenpack-r вот тут последняя сборка jngp с модулем scexp
ответ
Проверь, что бы в пути к редактору, не было русской кириллицы. Jngp её не переваривает.
ответ
В редакторе ландшафта в меню cJass отключи все галки.

23

» Администрация XGM / Оскорбление в дискорде

Похожие вопросы:

ответ
Не оскорбление, но за троллинг сойти может, давайте заканчивайте детский сад. Новый год подходит, съешьте лучше мандаринку 🍊

23

» WarCraft 3 / Задержка в карте.

Принятый ответ
Похожие вопросы:

ответ
Утечки в триггерах, надо код карты исправить.
ответ
ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было
ответ
darkoms, исходные позиции я уже выставил, но это не важно
просто вносишь нужные изменения в карте, сохраняешь в редакторе
потом берешь оптимизируешь с Vexorian Map Optimizer
и открываешь уже в варкрафте

галочки в оптимизиаторе как на скриншоте

23

» WarCraft 3 / OrderId2String

Похожие вопросы:

ответ
Функция не передаёт ни каких данных в переменную.
ты ошибаешься
OrderId2String('Aeye') возвращает "" (пустая строка) т.к. приказ 'Aeye' не имеет строкового представления
"order=" + "" = "order="
всё работает
ответ
NewToJass, vjass это диалект
он ничего не убирает а лишь дополняет
если в vjass чтото не работает то и в jass это тоже не работает
ответ
GetSpellAbilityId( )
ответ
Нашёл причину вылета.
У героя был Спеллбук, в спеллбуке была пассивная способность аура "Боевой марш". В процессе игры герой умирал и воскрешался. Если после воскрешения сохраниться и загрузиться вновь, то вылетает с ошибкой.
Исправил следующим образом. Отследил сохранения и в этом триггере отключал все пассивки в Спелбуке (SetPlayerAbilityAvaible() на false). Через малое время после сохранения вновь их активирую.

23

» WarCraft 3 / Книга заклинаний

Похожие вопросы:

ответ
bazeba:
В способностях. гдето рядом с описаниями, (не могу скрин послать на данный момент) есть пунктик с ID приказа, просто поставь различные, по сути должно помочь
это только у канала работает, на остальных абилках даже если поменять id - то ничего не произойдет
ответ
не ясно какая проблема. хочешь чтобы не смешивалось содержимое внутри спелбуков? меняй приказ у спелбуков см. тему
ответ
Black Soul:
Сначала добавь все способности, которые тебе нужны, в книгу заклинаний. Во время инициализации карты заблокируй для игрока способности, которые открываются при выполнении заданий.
После выполнения заданий разблокируй их.
ответ
~8gabriel8:
Там есть для Игрока (или Игры) действие Force UI Key. Назначаешь горячую клавишу книге и при событии выбора указываешь в этом действии свою клавишу.
Только событие выбора может реагировать с небольшой задержкой, достаточной, чтобы рассмотреть кнопки на панели приказов. Если это надо обойти, есть два варианта:
  • периодическим таймером на 0.03 секунды проверять, выбран ли юнит;
  • сделать два одинаковых типа юнитов, один из которых с классификацией страж, при выборе стража накладывать морф и открывать книгу (может потребоваться задержка), при снятии выбора накладывать обратный морф. Статья про морфы есть у quq_CCCP.
ответ
Fly123, ну сделай руной, и нафига писать триггер если есть абилки требующие золот и дерево?

23

» WarCraft 3 / Текстуры и модели

Похожие вопросы:

ответ
Я смотрю через MPQEditor. Открываешь с помощью него war3.mpq или War3x.mpq и забираешь любые модели и текстуры.
ответ
Dima131, импортируешь текстуру, а затем прописываешь ей путь, как у текстуры, которую использует модель
ответ
~8gabriel8:
Идея!
В модели один слой, а можно выделить ветви и на новый слой их, а там уже можешь делать смещение без коверкания наложения текстуры.
Что-то с моделью этой, не получается провернуть указанную операцию, постоянно вылетает ошибка.
ответ
Копируй модельку тролля, потом вставляй в модельку раптора не через cyrl + V, а через специальную вставку.
Выбираешь любую вершину (только 1) , за тем жмешь на: правка -> специальная вставка.
Разумеется текстура тролля и динозавра должны быть в одной папке.
ответ
Ruti Bergison:
Модель дублировать сюда: